class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        if needle=="":
            return 0
        i,j=0,0
        n1=len(haystack)
        n2=len(needle)
        while i<len(haystack)-len(needle)+1:
            if haystack[i]==needle[j]:
                temp=-1
                while i<n1 and j<n2 and haystack[i]==needle[j]:
                    if haystack[i]!=needle[0] and temp!=-1:
                        temp=i
                    i+=1
                    j+=1
                if j==n2:
                    return i-n2
                else:
                    if temp!=-1:
                        i=temp
                    else:
                        i=i-j+1
                    j=0
            else:
                i+=1
        return -1

'''
执行用时：
44 ms
, 在所有 Python3 提交中击败了
54.75%
的用户
内存消耗：
15 MB
, 在所有 Python3 提交中击败了
5.39%
的用户
'''